{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Adversarial-Robustness-Toolbox for scikit-learn GradientBoostingClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import GradientBoostingClassifier\n",
    "from sklearn.datasets import load_iris\n",
    "\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "from art.classifiers import SklearnClassifier\n",
    "from art.attacks import ZooAttack\n",
    "from art.utils import load_mnist\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1 Training scikit-learn GradientBoostingClassifier and attacking with ART Zeroth Order Optimization attack"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_adversarial_examples(x_train, y_train):\n",
    "    \n",
    "    # Create and fit GradientBoostingClassifier\n",
    "    model = GradientBoostingClassifier()\n",
    "    model.fit(X=x_train, y=y_train)\n",
    "\n",
    "    # Create ART classifier for scikit-learn GradientBoostingClassifier\n",
    "    art_classifier = SklearnClassifier(model=model)\n",
    "\n",
    "    # Create ART Zeroth Order Optimization attack\n",
    "    zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=20,\n",
    "                    binary_search_steps=10, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                    use_importance=False, nb_parallel=1, batch_size=1, variable_h=0.2)\n",
    "\n",
    "    # Generate adversarial samples with ART Zeroth Order Optimization attack\n",
    "    x_train_adv = zoo.generate(x_train)\n",
    "\n",
    "    return x_train_adv, model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 Utility functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(num_classes):\n",
    "    x_train, y_train = load_iris(return_X_y=True)\n",
    "    x_train = x_train[y_train < num_classes][:, [0, 1]]\n",
    "    y_train = y_train[y_train < num_classes]\n",
    "    x_train[:, 0][y_train == 0] *= 2\n",
    "    x_train[:, 1][y_train == 2] *= 2\n",
    "    x_train[:, 0][y_train == 0] -= 3\n",
    "    x_train[:, 1][y_train == 2] -= 2\n",
    "    \n",
    "    x_train[:, 0] = (x_train[:, 0] - 4) / (9 - 4)\n",
    "    x_train[:, 1] = (x_train[:, 1] - 1) / (6 - 1)\n",
    "    \n",
    "    return x_train, y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(model, x_train, y_train, x_train_adv, num_classes):\n",
    "    \n",
    "    fig, axs = plt.subplots(1, num_classes, figsize=(num_classes * 5, 5))\n",
    "\n",
    "    colors = ['orange', 'blue', 'green']\n",
    "\n",
    "    for i_class in range(num_classes):\n",
    "\n",
    "        # Plot difference vectors\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].plot([x_1_0, x_2_0], [x_1_1, x_2_1], c='black', zorder=1)\n",
    "\n",
    "        # Plot benign samples\n",
    "        for i_class_2 in range(num_classes):\n",
    "            axs[i_class].scatter(x_train[y_train == i_class_2][:, 0], x_train[y_train == i_class_2][:, 1], s=20,\n",
    "                                 zorder=2, c=colors[i_class_2])\n",
    "        axs[i_class].set_aspect('equal', adjustable='box')\n",
    "\n",
    "        # Show predicted probability as contour plot\n",
    "        h = .01\n",
    "        x_min, x_max = 0, 1\n",
    "        y_min, y_max = 0, 1\n",
    "\n",
    "        xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
    "\n",
    "        Z_proba = model.predict_proba(np.c_[xx.ravel(), yy.ravel()])\n",
    "        Z_proba = Z_proba[:, i_class].reshape(xx.shape)\n",
    "        im = axs[i_class].contourf(xx, yy, Z_proba, levels=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n",
    "                                   vmin=0, vmax=1)\n",
    "        if i_class == num_classes - 1:\n",
    "            cax = fig.add_axes([0.95, 0.2, 0.025, 0.6])\n",
    "            plt.colorbar(im, ax=axs[i_class], cax=cax)\n",
    "\n",
    "        # Plot adversarial samples\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].scatter(x_2_0, x_2_1, zorder=2, c='red', marker='X')\n",
    "        axs[i_class].set_xlim((x_min, x_max))\n",
    "        axs[i_class].set_ylim((y_min, y_max))\n",
    "\n",
    "        axs[i_class].set_title('class ' + str(i_class))\n",
    "        axs[i_class].set_xlabel('feature 1')\n",
    "        axs[i_class].set_ylabel('feature 2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2 Example: Iris dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### legend\n",
    "- colored background: probability of class i\n",
    "- orange circles: class 1\n",
    "- blue circles: class 2\n",
    "- green circles: class 3\n",
    "- red crosses: adversarial samples for class i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 2\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 3\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3 Example: MNIST"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 Load and transform MNIST dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test), min_, max_ = load_mnist()\n",
    "\n",
    "n_samples_train = x_train.shape[0]\n",
    "n_features_train = x_train.shape[1] * x_train.shape[2] * x_train.shape[3]\n",
    "n_samples_test = x_test.shape[0]\n",
    "n_features_test = x_test.shape[1] * x_test.shape[2] * x_test.shape[3]\n",
    "\n",
    "x_train = x_train.reshape(n_samples_train, n_features_train)\n",
    "x_test = x_test.reshape(n_samples_test, n_features_test)\n",
    "\n",
    "y_train = np.argmax(y_train, axis=1)\n",
    "y_test = np.argmax(y_test, axis=1)\n",
    "\n",
    "n_samples_max = 200\n",
    "x_train = x_train[0:n_samples_max]\n",
    "y_train = y_train[0:n_samples_max]\n",
    "x_test = x_test[0:n_samples_max]\n",
    "y_test = y_test[0:n_samples_max]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 Train GradientBoostingClassifier classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = GradientBoostingClassifier(loss='deviance', learning_rate=0.1, n_estimators=100, subsample=1.0, \n",
    "                                   criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, \n",
    "                                   min_weight_fraction_leaf=0.0, max_depth=3, min_impurity_decrease=0.0, \n",
    "                                   min_impurity_split=None, init=None, random_state=None, max_features=None, \n",
    "                                   verbose=0, max_leaf_nodes=None, warm_start=False, presort='auto', \n",
    "                                   validation_fraction=0.1, n_iter_no_change=None, tol=0.0001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GradientBoostingClassifier(criterion='friedman_mse', init=None,\n",
       "              learning_rate=0.1, loss='deviance', max_depth=3,\n",
       "              max_features=None, max_leaf_nodes=None,\n",
       "              min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "              min_samples_leaf=1, min_samples_split=2,\n",
       "              min_weight_fraction_leaf=0.0, n_estimators=100,\n",
       "              n_iter_no_change=None, presort='auto', random_state=None,\n",
       "              subsample=1.0, tol=0.0001, validation_fraction=0.1,\n",
       "              verbose=0, warm_start=False)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(X=x_train, y=y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 Create and apply Zeroth Order Optimization Attack with ART"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "art_classifier = SklearnClassifier(model=model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=100,\n",
    "                binary_search_steps=20, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                use_importance=False, nb_parallel=10, batch_size=1, variable_h=0.25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "x_train_adv = zoo.generate(x_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_test_adv = zoo.generate(x_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 Evaluate GradientBoostingClassifier on benign and adversarial samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Score: 1.0000\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_train, y_train)\n",
    "print(\"Benign Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Predicted Label: 5\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_train[0:1, :])[0]\n",
    "print(\"Benign Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Score: 0.0200\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_train_adv, y_train)\n",
    "print(\"Adversarial Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Predicted Label: 9\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_train_adv[0:1, :])[0]\n",
    "print(\"Adversarial Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Score: 0.5800\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_test, y_test)\n",
    "print(\"Benign Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAECCAYAAAD+eGJTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAODklEQVR4nO3df4xc5XXG8eeJvazjtWnsOHZcY3BDSBSSBlNtIJHbyhElJYmQQQltLNVypTSLWpCgitoiSxGW2qYU8aO0aZFMceNEhoTGUFDiprGstBSVOtiWAYNpTalLHW+9gNPaBPDP0z/2mm7J7ju7Oz/urM/3I61m5p479x5fzz773pl37zoiBCCvt9XdAIB6EQJAcoQAkBwhACRHCADJEQJAcrWEgO0rbP+L7edt31RHDyW299l+2vYu29u7oJ/1tods7x6xbK7tLbb3Vrdzuqy/tbZ/WB3DXbY/VWN/i21/3/Ye28/YvqFa3hXHsNBfR46hOz1PwPY0Sf8q6XJJ+yU9IWllRDzb0UYKbO+T1B8RL9fdiyTZ/kVJr0r6WkR8qFp2q6RDEXFLFaRzIuL3uqi/tZJejYjb6uhpJNsLJS2MiJ22Z0vaIekqSb+uLjiGhf5+RR04hnWMBC6R9HxEvBARxyR9Q9KKGvqYMiLiUUmH3rJ4haQN1f0NGn7R1GKM/rpGRAxGxM7q/hFJeyQtUpccw0J/HVFHCCyS9J8jHu9XB//B4xSSvmd7h+2BupsZw4KIGJSGX0SS5tfcz2iut/1UdbpQ2+nKSLaXSLpY0jZ14TF8S39SB45hHSHgUZZ129zlZRHxc5I+Kem6ariLiblb0vmSlkoalHR7ve1ItmdJ2iTpxog4XHc/bzVKfx05hnWEwH5Ji0c8PkfSgRr6GFNEHKhuhyQ9pOFTmG5zsDqXPH1OOVRzP/9PRByMiJMRcUrSPar5GNru0fA32MaIeLBa3DXHcLT+OnUM6wiBJyRdYPtnbJ8l6XOSHqmhj1HZ7qvenJHtPkmfkLS7/KxaPCJpdXV/taSHa+zlJ5z+5qpcrRqPoW1LulfSnoi4Y0SpK47hWP116hh2/NMBSao+6vgTSdMkrY+IP+x4E2Ow/R4N//SXpOmS7qu7P9v3S1ouaZ6kg5JulvQ3kh6QdK6kFyVdExG1vDk3Rn/LNTyMDUn7JF17+vy7hv5+XtI/Snpa0qlq8RoNn3fXfgwL/a1UB45hLSEAoHswYxBIjhAAkiMEgOQIASA5QgBIrtYQ6OIpuZLor1nd3F839yZ1tr+6RwJd/R8h+mtWN/fXzb1JHeyv7hAAULOmJgvZvkLSXRqe+feXEXFLaf2z3Bsz1Pfm4+M6qh71Tnr/7UZ/zenm/rq5N6n1/b2hH+tYHB3tl/cmHwKTuTjI2Z4bl/qySe0PwORti606HIdGDYFmTge4OAhwBmgmBKbCxUEANDC9ieeO6+Ig1UcdA5I0QzOb2B2AdmhmJDCui4NExLqI6I+I/m5+IwbIqpkQ6OqLgwAYn0mfDkTECdvXS/o7/d/FQZ5pWWcAOqKZ9wQUEZslbW5RLwBqwIxBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSm97Mk23vk3RE0klJJyKivxVNAeicpkKg8vGIeLkF2wFQA04HgOSaDYGQ9D3bO2wPtKIhAJ3V7OnAsog4YHu+pC22n4uIR0euUIXDgCTN0Mwmdweg1ZoaCUTEgep2SNJDki4ZZZ11EdEfEf096m1mdwDaYNIhYLvP9uzT9yV9QtLuVjUGoDOaOR1YIOkh26e3c19EfLclXQHomEmHQES8IOmiFvYCoAZ8RAgkRwgAyRECQHKEAJAcIQAkRwgAybXitwjTeOULHyvWz131fLH+3NCCYv3Y0Z5ifdH95frM/a8W66d2PVusIydGAkByhACQHCEAJEcIAMkRAkByhACQHCEAJMc8gQn43d+5r1j/TN+Pyhs4v8kGlpfL+068Vqzf9dLHm2xgavvB0HnFet/tP1WsT9+6o5XtdA1GAkByhACQHCEAJEcIAMkRAkByhACQHCEAJOeI6NjOzvbcuNSXdWx/rfbjz15arL/84XKmztlTPtY/+oCL9bM+/N/F+q0ferBYv/ztrxfr33ltVrH+6Znl6xU06/U4VqxvO9pXrC+fcbyp/b/3O9cW6+8beKKp7ddpW2zV4Tg06guMkQCQHCEAJEcIAMkRAkByhACQHCEAJEcIAMlxPYEJ6PvWtgb15rZ/dnNP15+9e3mx/gfLlpT3/w/lv5tw6/L3TrCjiZn++qlive+pwWL9nY9uKtZ/9qwGf7dhX7l+pmo4ErC93vaQ7d0jls21vcX23up2TnvbBNAu4zkd+KqkK96y7CZJWyPiAklbq8cApqCGIRARj0o69JbFKyRtqO5vkHRVi/sC0CGTfWNwQUQMSlJ1O791LQHopLa/MWh7QNKAJM3QzHbvDsAETXYkcND2QkmqbofGWjEi1kVEf0T096h3krsD0C6TDYFHJK2u7q+W9HBr2gHQaQ1PB2zfr+Er3s+zvV/SzZJukfSA7c9LelHSNe1sEuNz4r8OFut9m8r1kw223/etVybYUWsd/I2PFesfPKv8cr7t0PuL9SV/9UKxfqJYnboahkBErByjNHWvDgLgTUwbBpIjBIDkCAEgOUIASI4QAJIjBIDkuJ4Ausb08xYX619Z85VivcfTivW/vuuXivV3Dj5erJ+pGAkAyRECQHKEAJAcIQAkRwgAyRECQHKEAJAc8wTQNZ777UXF+kd6Xaw/c+z1Yn3us69NuKcMGAkAyRECQHKEAJAcIQAkRwgAyRECQHKEAJAc8wTQMUc//ZFifedn72ywhfJfsPrNG24o1t/+Tz9osP2cGAkAyRECQHKEAJAcIQAkRwgAyRECQHKEAJAc8wTQMS9+svwzZ5bL8wBW/vvlxfrM7z5ZrEexmlfDkYDt9baHbO8esWyt7R/a3lV9faq9bQJol/GcDnxV0hWjLL8zIpZWX5tb2xaATmkYAhHxqKRDHegFQA2aeWPwettPVacLc1rWEYCOmmwI3C3pfElLJQ1Kun2sFW0P2N5ue/txHZ3k7gC0y6RCICIORsTJiDgl6R5JlxTWXRcR/RHR39Pgt8AAdN6kQsD2whEPr5a0e6x1AXS3hvMEbN8vabmkebb3S7pZ0nLbSzX80es+Sde2sUdMEW+bPbtYX/ULjxXrh0+9UawPffk9xXrv0SeKdYyuYQhExMpRFt/bhl4A1IBpw0ByhACQHCEAJEcIAMkRAkByhACQHNcTQMvsXfvBYv3b8/6iWF+x9zPFeu9m5gG0AyMBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSY54Axu1/fu2jxfpTv/qnxfq/nTherL/6x+cU670aLNYxOYwEgOQIASA5QgBIjhAAkiMEgOQIASA5QgBIjnkCeNP0RT9drN/4pW8W670uv5w+9+SqYv1df8v1AurASABIjhAAkiMEgOQIASA5QgBIjhAAkiMEgOSYJ5CIp5f/uy/69v5i/ZpZrxTrG4/ML9YXfKn8M+dUsYp2aTgSsL3Y9vdt77H9jO0bquVzbW+xvbe6ndP+dgG02nhOB05I+mJEfEDSRyVdZ/tCSTdJ2hoRF0jaWj0GMMU0DIGIGIyIndX9I5L2SFokaYWkDdVqGyRd1a4mAbTPhN4YtL1E0sWStklaEBGD0nBQSCqfEALoSuMOAduzJG2SdGNEHJ7A8wZsb7e9/biOTqZHAG00rhCw3aPhANgYEQ9Wiw/aXljVF0oaGu25EbEuIvojor9Hva3oGUALjefTAUu6V9KeiLhjROkRSaur+6slPdz69gC023jmCSyTtErS07Z3VcvWSLpF0gO2Py/pRUnXtKdFtMxF7y+Wf3/+15va/J9/ufwSeMeTjze1fbRHwxCIiMckeYzyZa1tB0CnMW0YSI4QAJIjBIDkCAEgOUIASI4QAJLjegJnkGkXvq9YH/hGc/O5Llx/XbG+5Ov/3NT2UQ9GAkByhACQHCEAJEcIAMkRAkByhACQHCEAJMc8gTPIc79Vvur7lTPHfVW4UZ3z98fKK0Q0tX3Ug5EAkBwhACRHCADJEQJAcoQAkBwhACRHCADJMU9gCnnjykuK9a1X3t5gCzNb1wzOGIwEgOQIASA5QgBIjhAAkiMEgOQIASA5QgBIruE8AduLJX1N0rslnZK0LiLusr1W0hckvVStuiYiNrerUUgHlk0r1s+d3tw8gI1H5hfrPYfL1xPgagJT03gmC52Q9MWI2Gl7tqQdtrdUtTsj4rb2tQeg3RqGQEQMShqs7h+xvUfSonY3BqAzJvSegO0lki6WtK1adL3tp2yvt12+thWArjTuELA9S9ImSTdGxGFJd0s6X9JSDY8URp24bnvA9nbb24/raAtaBtBK4woB2z0aDoCNEfGgJEXEwYg4GRGnJN0jadTfbomIdRHRHxH9PeptVd8AWqRhCNi2pHsl7YmIO0YsXzhitasl7W59ewDabTyfDiyTtErS07Z3VcvWSFppe6mGPxnaJ+natnQIoK3G8+nAY5I8Sok5AVPMH71yYbH++C8vKdZj8OkWdoNuwYxBIDlCAEiOEACSIwSA5AgBIDlCAEiOEACSc3Twb8qf7blxqS/r2P4ADNsWW3U4Do0234eRAJAdIQAkRwgAyRECQHKEAJAcIQAkRwgAyXV0noDtlyT9x4hF8yS93LEGJo7+mtPN/XVzb1Lr+zsvIt41WqGjIfATO7e3R0R/bQ00QH/N6eb+urk3qbP9cToAJEcIAMnVHQLrat5/I/TXnG7ur5t7kzrYX63vCQCoX90jAQA1IwSA5AgBIDlCAEiOEACS+1/8tsxjstIf5QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Predicted Label: 7\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_test[0:1, :])[0]\n",
    "print(\"Benign Test Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Score: 0.1400\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_test_adv, y_test)\n",
    "print(\"Adversarial Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Predicted Label: 9\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_test_adv[0:1, :])[0]\n",
    "print(\"Adversarial Test Predicted Label: %i\" % prediction)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
